\." Copyright (c) 2000-2007 by George Williams (gww@silcom.com).
\." Original manual page by Tom Harvey, subsequently modified by
\." George Williams. Heavily rewritten and modified to use standard
\." -man (5) macros by R.P.C. Rodgers (rodgers@nlm.nih.gov), 23 October 2002. 
\." Paul Hardy reconstructed the original man page and added output from
\." the latest FontForge release.
.TH FONTFORGE 1 "2017 Jun 18"
.SH NAME
fontforge \- create, modify, and view font files
.SH SYNOPSIS
.BR fontforge
[\fB\-c\fP\ \fIstring\fP]
[\fB\-cmap\fP\ \fImaptype\fP]
[\fB\-depth\fP\ \fIpixeld\fP]
[\fB\-display\fP\ \fIstr\fP]
[\fB\-lang\fP=ff]
[\fB\-lang\fP=py]
[\fB\-help\fP]
[\fB\-keyboard\fP\ \fIktype\fP]
[\fB\-new\fP]
[\fB\-nosplash\fP]
[\fB\-recover\fP\ \fImode\fP]
[\fB\-script\fP\ \fIfile\fP]
[\fB\-sync\fP]
[\fB\-usage\fP]
[\fB\-vc\fP\ \fIclass\fP]
[\fB\-version\fP]
[\fIfontfile\fP\ ...]
.SH DESCRIPTION
.B FontForge
will read PostScript (pfa, pfb, ps, cid), OpenType (otf),
TrueType (ttf, ttc), Macintosh resource fonts (dfont, bin, hqx),
Scaled Vector Graphics (svg), TeX bitmap (pk),
Glyph Bitmap Distribution Format (bdf),
and X11 bitmap (pcf) fonts.  Font files
may be compressed with gzip (for example, myfont.pcf.gz).
.B FontForge
will also read its own format: Spline Font Database (sfd) files.
.PP
If the argument list contains a font file name (or several),
\fBfontforge\fP opens a \fBfontview\fP window
for each font displaying the characters of that font.
In the absence of options or arguments, the program
opens a file-picker window, allowing you to browse
your disk to find a font file, or create a new one.
.PP
This manual page is intended only as a rudimentary overview;
see the HTML Users Manual for more complete information.
.PP
If no \fIfontfiles\fP are specified, and neither is \fB\-new\fP, and
there is nothing to recover, then \fBFontForge\fP will produce
an open font dialogue box.
.PP
If a \fIscriptfile\fP is specified then \fBFontForge\fP will not open the
X display, nor will it process any additional arguments. It will execute the
\fIscriptfile\fP and give it any remaining arguments
.PP
If the first argument is an executable filename, and that file's first
line contains "fontforge", then it will be treated as a \fIscriptfile\fP.
.SH OPTIONS
.TP 12
.B \-new
Creates a new font.
.TP
.B \-last
Loads the last sfd file closed.
.TP
.B \-recover none\fR|\fPauto\fR|\fPinquire\fR|\fPclean
Control error recovery.
\fBnone\fP suppresses crash revcovery.
\fBauto\fP performs automatic recover if the program crashed
before saving changes; this is the default.
\fBinquire\fP asks what to do with auto-saved crash recovery files.
\fBclean\fP deletes recovery information.
.TP
.B \-allglyphs
Load all glyphs in the 'glyf' table. of a TrueType collection.
.TP
.B \-nosplash
Suppress display of the splash screen.
.TP
.B \-quiet
Don't print non-essential information to stderr.
.TP
.B \-unique
If a copy of fontforge is already running, open all arguments
in it and have this process exit.
.TP
.B \-display \fIdisplay-name\fP
Employ the X display specified by the string
\fIdisplay-name\fP (for example: localhost:0).
.TP
.B \-depth \fIpixeld\fP
Attempt to employ a visual that matches the specified pixel depth,
\fIpixeld\fP.
.TP
.B \-vc \fIval\fP
Sets the visual class if possible.
.TP
.B \-cmap current\fR|\fPcopy\fR|\fPprivate
Sets the type of color map.
\fBcurrent\fP attempts to allocate colors int he current (shared) color map.
The program will likely not find everything it requires.
\fBcopy\fP allocates what can be allocated,
then copies the current color map; it can thus
make use of cells other programs are using.
\fBprivate\fP creates a new color map and fills it with the required colors.
.TP
.B \-dontopenxdevices
In case that fails.
.TP
.B \-sync
Syncs the display, debugging.
.TP
.B \-keyboard ibm\fR|\fPmac\fR|\fPsun\fR|\fPppc
Generates appropriate hotkeys in menus.
Use \fBibm\fP on an IBM-compatible PC.
Use \fBmac\fP on a Mac computer running Mac\ OS.
Use \fBsun\fP on a Sun workstation.
Use \fBppc\fP on Power PC Mac running SUSE GNU/Linux.
.TP
\fB\-usecairo\fP=yes|no
Use (or not) the cairo library for drawing.
.TP
.B \-help
Displays a help message and exits.
.TP
.B \-docs
Displays help file output and then invokes a browser
using the \fBBROWSER\fP environment variable.
.TP
.B \-version
Prints the version of fontforge and exits.
.TP
\fB\-lang\fP=py
Use Python for scripts (may precede \fB\-script\fP).
.TP
\fB\-lang\fP=ff
Use fontforge's legacy scripting language.
.TP
.B \-script \fIscriptfile\fP
Executes \fIscriptfile\fP.  Must be the first option (or follow \fB\-lang\fP).
All other arguments are passed to \fIscriptfile\fP.
Execute the script named \fIfile\fP.
Does not open the X display.
This must be the first argument passed to \fBFontForge\fP.
Any other arguments are handled by the script file itself.
Any other command line arguments will be passed to the script.
The program contains a command interpreter,
which allows access to most but not all of
its interactive features.
If a script file is executable, and if its first line
contains the string "fontforge", then
the argument \fB\-script\fP may be omitted.
This means that \fBFontForge\fP can be used
as an interpreter.
.TP
.B \-dry \fIscriptfile\fP
Syntax checks \fIscriptfile\fP (dry run).  Must be the first option.
All other arguments are passed to \fIscriptfile\fP.  This option can
only be used with fontforge's own scripting language, not with Python.
.TP
.B \-c \fIscript-string\fP
Executes argument as scripting commands.  Must be the first option.
All other arguments are passed to the script.
.SH EXAMPLE
Sample usage:
.PP
.RS
fontforge myfont.ttf &
.RE
.SH ENVIRONMENT
.TP
.B BROWSER
Specifies the name of a browser program for 
examining online documentation.
.TP
.B AUTOTRACE
Specifies the location of the autotrace program.
Usually FontForge can figure this out without
help, but not always.
.TP
.B MF
Specifies the location of the \fBmetafont\fP program.
.TP
.B FONTFORGE_VERBOSE
Turns on verbose mode in scripting.  Each statement
is printed as it is executed.
.SH FILES
.TP
~/.FontForge/autosave
Crash recovery directory.
.TP
/usr/share/fontforge/*.ui
Translations for user interfaces.
.TP
/usr/share/fontforge/doc/*.html
Optional location for online documentation.
.TP
/usr/share/fontforge/*.cidmap
"Encoding" files for Adobe's cid formats, from
http://fontforge.sourceforge.net/cidmaps.tgz.
.SH SEE ALSO
\fBsfddiff\fP(1)
.PP
The HTML version of the \fBFontForge\fP manual, available online at:
http://fontforge.sourceforge.net/.
.SH NOTE
\fBFontForge\fP used to be called \fBPfaEdit\fP.
.SH AUTHORS
.B FontForge
is Copyright \(co 2000\(en2014 by George Williams, and is currently
maintained by the FontForge development team.  See
/usr/share/doc/fontforge/AUTHORS for a comprehensive list of contributors.
.SH LICENSE
FontForge is licensed under GPLv3+: GNU GPL version 3 or later
(http://gnu.org/licenses/gpl.html) with many parts covered by a BSD license
(http://fontforge.org/license.html).  Please read the LICENSE file included
in the FontForge distribution for details, or see
https://github.com/fontforge/fontforge/blob/master/LICENSE.
.PP
FontForge is available as a whole under the terms of the GNU GPL (http://www.gnu.org/copyleft/gpl.html), version
3 or any later version. 
However, almost all of its parts are available under the "revised BSD license" (http://www.law.yi.org/~sfllaw/talks/bsd.pdf) because FontForge was mostly written by George Williams, using that license.
.PP
The Revised BSD License is very permissive, and allows for code to be combined with other code under other licenses. 
.PP
There are many useful libraries available under copyleft libre licenses, such as the LGPL and GPL, which FontForge started to use in 2012. 
.PP
For example, Pango and Cairo are available under the LGPL.
.PP
Some features added since 2012 are licensed by their individual developers under the GPLv3.
.SH BUGS
See the FontForge Github Issue Tracker, at
https://github.com/fontforge/fontforge/issues/.
